package com.liuugoqing.behavioral.Iterator;

import java.util.ArrayList;
import java.util.List;

/**
 * 具体迭代器（Concretelterator）角色：实现抽象迭代器接口中所定义的方法，完成对聚合对象的遍历，记录遍历的当前位置。
 * @Author : liugq
 * @Date : 2022/7/14 16:27
 * @See : 参考类
 * @Since： JDK1.8
 * @Version : 1.0
 */
public class StudentAggregateImpl implements StudentAggregate {
    private List<Student> list = new ArrayList<Student>();  // 学生列表

    /**
     * 添加学生
     *
     * @param student
     */
    @Override
    public void addStudent(Student student) {
        this.list.add(student);
    }

    /**
     * 删除学生
     *
     * @param student
     */
    @Override
    public void removeStudent(Student student) {
        this.list.remove(student);
    }

    /**
     * 获取迭代器
     *
     * @return
     */
    @Override
    public StudentIterator getStudentIterator() {
        return new StudentIteratorImpl(list);
    }
}
